// 服务器返回的数据类型
interface SeverResponse<T> {
  code: number
  data: T
  msg: string
}
Page({
  data: {
    jokeText: '',
    jokeList: [] as string[] //通过泛型指定类型
  },
  // 页面加载时就获取数据
  onLoad() {
    this.getData()
  },
  // 获取数据
  getData() {
    wx.showLoading({ title: '数据加载中...' })//显示 loading
    //  发起HTTPS 网络请求
    wx.request({
      method: 'GET', //请求方法
      url: 'https://api-vue-base.itheima.net/api/joke', //请求地址
      success: (res) => { //接口调用成功的回调函数
        // console.log(res.data)
        wx.hideLoading() //隐藏loading
        // 更新数据+视图
        this.setData({
          jokeText: res.data as string //把联合类型断言为 string
        })
      }
    })
  },
  fail: () => {
    wx.showToast({ title: '请求异常', icon: 'error' })
  },
  // 无论成功还是失败都会触发
  complete: () => {
    wx.hideLoading()//隐藏loading
  },
  // 获取笑话列表
  getJokeList() {
    //  wx.request<泛型>()  传入的泛型用于指定开发者服务器返回的数据类型
    wx.request<SeverResponse<string[]>>({
      url: 'https://api-vue-base.itheima.net/api/joke/list',
      method: 'GET',//请求方法
      data: { num: 3 },//请求参数
      success: (res) => { //请求成功的回调函数
        console.log(res)
        this.setData({
          jokeList: res.data.data
        })
      },
      fail: () => { }, //请求失败
      complete: () => { }, //请求完成，不管成功失败都会执行
    })
  },
})